Script files are compressed using gzip.

Sources

A nice user by the name of EnglishSubs4All made a series of subtitled YouTube videos you can find here:
https://www.youtube.com/watch?v=la_ou-TclIY&list=PLJuBs-ZY7iMpM13fIV1_L0cs4YahJK1TD

They also made their AegisSub subtitle scripts (.ass) availabe in the hopes someone would come along and create a patch for the game. You can find those here:
https://www.mediafire.com/?d65adgx6931owoj

I put those .ass into a format that can be inserted. You can find my sources here:
https://docs.google.com/spreadsheets/d/1OfOiXeVGDCUnFoJY_R5TvmkhsLfyyq9WsxiLdADb55g/edit#gid=1266805818

.tsv of those are included with this in case access to the Google Sheet is lost for any reason.

----------------------------

Dumping

dump.py - for reference only

There is a section that starts "bscr". That section has the strings.
The offset to the bscr section is at 0xC within the decompressed files.

Within the bscr section:
The size of the bscr section is at 0x24
The number of strings is at 0x30
The starting address for the strings is at 0x34
The starting address for the next section within bscr is at 0x3C

The information able is sufficient for dumping the strings.
-------------------------

Inserting

insert2.py - the insert script
You need to have the script files from \USRDIR\GAMEDATA\FLD\MAP and the .tsv files in the same folder to get things working. It will produce new files you can then insert using UMDgen.

The "next section" (starting address given by 0x3C) I am not sure what exactly is going on. It seems to be function parameters. Wherever I saw a function parameter corresponding to offset within the string table of the start of a string, I assumed it was a parameter for a text display function. 

During insert:
First all of the string offsets are recorded and for any matching function parameters, the offset of the parameter and the string index number are noted.
Then, the strings are concatenated with nulls and inserted.
Then, new string offsets are computed.
Finally, function parameters are updated using the offsets and index numbers recorded at the beginning.
------------------------
Problems:
There are problems with line wrapping.
The English text is longer in many cases, and goes beyond the border of the screen, and it's beyond my programming ability to solve. Some of the parameters affect text display. I believe display position is also given by the parameters in the table. What would be needed is to analyze these parameters to determine available space, and then adjusting the parameters as needed such that text does not go off the screen. Another option is variable-width font that would allow more space for the text.

Examine the screenshot in this folder. For this string, 0 is the setting Capcom chose for this string. For the parameter prior to the string offset for this dialogue bubble, I varied the value from 0x00 to 0x0C inclusive and the results are are as you see. So it's possible to vary the text positions, I just don't know how to programmatically do it.